#ifndef GUI_MANAGER_H_INCLUDED
#define GUI_MANAGER_H_INCLUDED

#include <vector>
#include "Singleton.h"

class GUIObject;
class File;

class GUIManager : public Uncopyable
{
private: 
	GUIManager();
	friend class Singleton<GUIManager>;

public:
	void Draw();
	void Update();
	bool Load(const std::string& guiInfo);

	void DeleteGUIObjects();

	// NEVER CALL THESE FUNCTIONS (these should work all by themselves)
	//Make private?
	void AddGUIObject(GUIObject* GUIObj);
	void RemoveGUIObject(GUIObject* GUIObj);

private:
	typedef std::vector <GUIObject*> GUIObjectVec;
	GUIObjectVec::iterator m_it;
	GUIObjectVec m_GUIObjVec;
};

typedef Singleton<GUIManager> TheGUIManager;

#endif